Private API: the psbox module

Quick access

Routines:ps_gather(), ps_reduce(), ps_scatter()

Needed modules

Subroutines and functions

interface psbox/ps_reduce(val, mpi_env, e[, op])
Parameters:
  • val (various shapes) [real, inout]
  • mpi_env [mpi_environment, in]
  • e [psolver_energies, inout]
Options:

op [f_enumerator, in,] :: < operation to be done

subroutine psbox/ps_gather(src, grid, mpi_env[, dest, nsrc])
Parameters:
  • src (*) [real, in]
  • grid [fft_metadata, in]
  • mpi_env [mpi_environment, in]
Options:
  • dest (grid%m1,grid%m3,grid%m2,*) [real, out,]
  • nsrc [integer, in,] :: < number of copies of the array src (useful for spin-polarized)
Use :

dynamic_memory (f_memcpy())

Called from:

rebuild_cavity_from_rho()

subroutine psbox/ps_scatter(src[, dest, grid, mpi_env)
Parameters:
  • src (grid%m1,grid%m3,grid%m2) [real, in]
  • grid [fft_metadata, in]
  • mpi_env [mpi_environment, in]
Options:

dest (grid%m1,grid%m3*grid%n3p) [real, out,]